6051 - Programação – algoritmia

PASCAL   ---  Pascalv2

Compilador PascalZim download

Semana

Aula

6051 - Programação – algoritmia   VER+

Designação da UFCD: Programação - algoritmia

Código: 6051

Carga Horária: 25 horas (33,3 tempos de 45 min)

Pontos de crédito: 2,25

•Identificar e dominar a utilização dos diferentes tipos de variáveis.

•Elaborar o algoritmo de resolução para um dado um problema.

•Descrever a estrutura de um algoritmo identificando as palavras-chave, variáveis e funções.

•Elaborar algoritmos, sem ambiguidades, eficazes e eficientes.

Recursos

Sumário

1

Aula   

1,2

19/09/2017

Algoritmo para que serve?

Um algoritmo é uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. São exemplos de algoritmos instruções de montagem, receitas, manuais de utilizador, etc.

Um algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo; um algoritmo é um caminho para a solução de um problema. Em geral, existem muitos (senão infinitos) caminhos que levam a uma solução satisfatória.

 

Algoritmo (não computacional) atravessar a rua

Olhar para a direita (input)

Olhar para a esquerda (input)

    Se vier um carro, então (Condição IfThen)

         Não atravessar (resultado se)

    Senão (Else)

        Atravessar (resultado senão)

    Fim do se (end if)

Fim do algoritmo (end)

 

Algoritmo (não computacional) arranque do motor de um carro

 

 

Algoritmo (computacional) somar 2 números

Ler o 1º número (input)

Ler o 2º número (input)

Soma= 1º numero + 2º número (cálculo)

Mostrar o resultado da soma (output)

Fim do algoritmo (end)

 

Linguagens de programação - Uma linguagem de programação é um método padronizado para comunicar instruções ao computador.

Permite ao programador especificar precisamente sobre que dados o computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.

 

Programas - Um programa de computador é um conjunto de instruções que descrevem uma tarefa a ser realizada por um computador. Tem que ser escrito numa linguagem de programação.

 

Linguagens de baixo nível - Low-level programming language (linguagens de baixo nível) - é uma linguagem de programação que muito relacionada com o SET de instruções da máquina. É uma linguagem que está “perto do hardware”.  Programas escritos em linguagens de baixo nível tendem a ser relativamente não-portáteis, principalmente por causa da estreita relação entre a linguagem e a arquitetura de hardware.


Para esta programação pode ser usada:

  - linguagem máquina machine code - A única linguagem entendida pelo computador. (apenas entendível pelo computador, constituída por zeros e uns 01010101, não entendível para humanos)

ou 
  - linguagem assambley ou assembler que utiliza a já referida linguagem do Instruction SET (ADD; SUB; JUMP; etc.. ). Contudo, e apesar de ser uma linguagem de baixo nível é necessário traduzi-la para linguagem máquina, para que seja entendível pelo computador, para esse efeito é utilizado um tradutor ou assembler.
ex: ADD; SUB; JUMP  >>> ASEMBLER >>>>> Computador

 

Linguagens de alto nível - high-level programming language (linguagem de programação de alto nível) é uma linguagem de programação distante do código máquina em comparação com linguagens de programação de baixo nível. Podem ser usados elementos da linguagem natural tornando-se mais fácil aos humanos, alias foi com esse propósito que foi inventada. Exemplo C++ que utiliza caracteres como +*-/ sem recorrer a palavras do SET de instruções ou a código binário.

 

Compiladores/interpretadores - Um compilador é um programa de computador (ou um grupo de programas). Classicamente, um compilador traduz um programa de uma linguagem textual facilmente entendida por um ser humano para uma linguagem de máquina, específica para um processador e sistema operativo.

O nome "compilador" é usado principalmente para os programas que traduzem o código fonte de uma linguagem de programação de alto nível para uma linguagem de programação de baixo nível (por exemplo, Assembly ou código de máquina). https://www.youtube.com/watch?v=CSZLNYF4Klo

 

Gerações das linguagens

Primeira geração (linguagem de máquina)- São linguagens onde suas estruturas de controlo são aparentemente orientadas à máquina. Uma linguagem típica desta geração é a linguagem Fortran.

Segunda geração (linguagens de montagem (assembly)) - São linguagens onde as estruturas de controlo são estruturadas de forma a minimizar ou dispensar o uso de instruções GOTO. Uma linguagem típica desta geração é o Algol.

Terceira geração (Linguagens baseadas em procedimentos) - São linguagens que dão ênfase à simplicidade e eficiência. Uma linguagem típica desta geração é a linguagem Pascal. As estruturas de controlo são mais simples e eficientes.

Quarta geração (Linguagens baseadas em aplicações) – Esta é uma geração linguagens com abstração de dados. A maioria das linguagens desta geração focam na modularização e no encapsulamento. Uma linguagem típica desta geração é a linguagem Ada.

Quinta geração (Linguagens voltadas para a Inteligência artificial como as linguagens lógicas (Prolog) e as linguagens funcionais (Lisp).)

 

 

6051ProgAlg.pptx

 

 

6051ProgAlg2.pptx

 

 

For to LOOP

 

Repeat

UFCD 6051 - Programação – algoritmia (1,2 de 33)

Apresentação da planificação e conteúdos a abordar ao longo do ano.

 

Aula

3,4,5

22/09/2017

PASCAL

 

 

2

Aula   

7,8,9

Xx/xx/xxXX

 

 

 

Aula

10,11,12

Xx/xx/xxXX

 

 

 

3

Aula   

13,14,15

Xx/xx/xxXX

 

 

 

Aula

16,17,18

Xx/xx/xxXX

 

 

 

4

Aula   

19,20,21

Xx/xx/xxXX

 

 

 

Aula

22,23,24

Xx/xx/xxXX

 

 

 

5

Aula   

25,26,27

Xx/xx/xxXX

 

 

 

Aula

29,30,31

Xx/xx/xxXX

 

 

 

6

Aula

32,33,34

Xx/xx/xxXX

 

 

 

Aula12

4,5,6

Xx/xx/xxXX

 

 

 

1

Aula13 

1,2,3

Xx/xx/xxXX

 

 

 

Aula14

4,5,6

Xx/xx/xxXX

 

 

 

1

Aula15 

1,2,3

Xx/xx/xxXX

 

 

 

Aula16

4,5,6

Xx/xx/xxXX

 

 

 

1

Aula17 

1,2,3

Xx/xx/xxXX

 

 

Sumário

Aula18

4,5,6

Xx/xx/xxXX

 

 

 

1

Aula19 

1,2,3

Xx/xx/xxXX

 

 

 

Aula20

4,5,6

Xx/xx/xxXX

 

 

 

1

Aula21 

1,2,3

Xx/xx/xxXX

 

 

 

Aula22

4,5,6

Xx/xx/xxXX

 

 

 

1

Aula23 

1,2,3

Xx/xx/xxXX

 

 

 

Aula24

4,5,6

Xx/xx/xxXX

 

 

 

1

Aula23 

1,2,3

Xx/xx/xxXX

 

 

 

Aula24

4,5,6

Xx/xx/xxXX

 

 

 

 

 

 

 

 

6051 - Programação - algoritmia

 

·         Identificar e dominar a utilização dos diferentes tipos de variáveis.

·         Elaborar o algoritmo de resolução para um dado um problema.

·         Descrever a estrutura de um algoritmo identificando as palavras-chave, variáveis e funções.

·         Elaborar algoritmos, sem ambiguidades, eficazes e eficientes.

Recursos Didáticos


Conteúdos


·         Conceitos introdutórios

o    Linguagens de programação

o    Programas

o    Linguagens de baixo nível

o    Linguagens de alto nível

o    Compiladores/interpretadores

o    Gerações das linguagens

·         Fases de desenvolvimento de um programa

o    Análise de problemas

§  - Compreensão do problema

§  - Dados de entrada

§  - Dados de saída

§  - Relações

o    Formulação de um algoritmo

o    Codificação

o    Detecção de erros

o    Testes

o    Optimização

·         Algoritmos

o    Noção de algoritmo

o    Formas de representação

§  - Narrativa

§  - Fluxograma

§  - Formal

o    Características

o    Formato geral e notação

o    Regras de sintaxe

·         Abordagem estruturada

o    Dados/instruções

o    Concepção descendente

o    Refinamento sucessivos

·         Variáveis

o    Armazenamento

o    Declaração

·         Constantes

o    Conceito

o    Declaração

·         Tipos de dados

o    Simples

§  - Inteiro

§  - Real

§  - Caracter

§  - Booleano

o    String

·          Expressões

o    Conceito

o    Operadores

§  - Matemáticos

§  - Relacionais

§  - Lógicos

o    Funções

·         Estruturas de decisão

o    Conceito: se, então, senão

o    Seleccionar caso

·         Ciclos

o    Enquanto

o    Para

·         Noções de array

o    Entrada/saída de dados